from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_cors import CORS
from config import config

# 初始化数据库
db = SQLAlchemy()

def create_app(config_name='default'):
    """创建并配置Flask应用"""
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    
    # 初始化扩展
    db.init_app(app)
    CORS(app)  # 允许跨域请求，方便前后端分离开发
    
    # 注册蓝图
    from app.routes import main_bp
    app.register_blueprint(main_bp)
    
    # 创建数据库表
    with app.app_context():
        db.create_all()
    
    # 注册错误处理
    register_error_handlers(app)
    
    return app

def register_error_handlers(app):
    """注册全局错误处理"""
    @app.errorhandler(400)
    def bad_request(error):
        return {'error': 'Bad request', 'message': str(error)}, 400
    
    @app.errorhandler(404)
    def not_found(error):
        return {'error': 'Not found', 'message': str(error)}, 404
    
    @app.errorhandler(500)
    def internal_server_error(error):
        return {'error': 'Internal server error', 'message': str(error)}, 500
    